﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using VentaElectrodomesticos.Sql;
using VentaElectrodomesticos.Utilities;
using System.Data.SqlClient;

namespace VentaElectrodomesticos.TableroControl
{
    public partial class FormTableroControl : Form
    {
        ClaseSQL sql = new ClaseSQL();

        public FormTableroControl()
        {
            InitializeComponent();
            
            sql.llenarCombo(cbSucursal,"SELECT idSucursal, direccion FROM LAG.sucursales");
        }

        private void ingresarSoloNumericos(object sender, KeyPressEventArgs e)
        {
            if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), "[0-9\b]+"))
                e.Handled = true;
        }

        private bool validarCampos()
        {
            bool vAnio = Utils.validarAnio(this.tbAnio, this.errorProvider);
            bool vSucursal = !Utils.campoVacio(cbSucursal,this.errorProvider,"Seleccione una sucursal");

            return vAnio && vSucursal;
        }

        private void btnCalcular_Click(object sender, EventArgs e)
        {
            if (this.validarCampos())
            {
                Utils.ClearTextBoxes(gbEstadisticas);
                

                String[,] parametros = new String[2, 2];
                String sp = "LAG.tablero_control";
                parametros[0, 0] = "@arg_Ano";
                parametros[1, 0] = tbAnio.Text;
                parametros[0, 1] = "@arg_idSucursal";
                KeyValuePair sucursal =(KeyValuePair) cbSucursal.SelectedItem;
                parametros[1, 1] = sucursal.Key.ToString();

                sql.Open();
                SqlDataReader reader = sql.ejecutarStoredProcedure(sp, parametros);
                reader.Read();

                double totVentas,totCuotas,X=0,Y=0;

                double.TryParse(reader["TotalCantVentas"].ToString(), out totVentas);
                double.TryParse(reader["TotalCantFacEnCuotas"].ToString(), out totCuotas);

                if (totVentas > 0)
                {
                    Y = totCuotas / totVentas * 100;
                    X = 100 - Y;
                }

                tbVentas.Text = reader["TotalCantVentas"].ToString();
                tbFacturacion.Text = reader["TotalFacturacion"].ToString();
                if (X != 0 || Y != 0)
                {
                    tbProporcion.Text = (Math.Truncate(X * 100) / 100).ToString() + " - " + (Math.Truncate(Y * 100) / 100).ToString().ToString();
                }
                else
                {
                    tbProporcion.Text = "No hubo ventas";
                }
                tbMayorFact.Text = reader["MayorMontoFactura"].ToString();

                tbMD.Text = reader["MayorDeudor"].ToString();
                tbVA.Text = reader["MejorVendedor"].ToString();
                tbPA.Text = reader["MejorProducto"].ToString();
                tbFSCodProd.Text = reader["ProdSinStock"].ToString();
                tbFSDias.Text = reader["ProdSinStockDias"].ToString();

                sql.Close();
            }
        }

        
    }
}
